Skip to main content

v0.4.0

2023-12-23

DefraDB v0.4 is a major pre-production release. Until the stable version 1.0 is reached, the SemVer minor patch number will denote notable releases, which will give the project freedom to experiment and explore potentially breaking changes.

There are various new features in this release - some of which are breaking - and we invite you to review the official changelog below. Some highlights are persistence of replicators, DateTime scalars, TLS support, and GQL subscriptions.

This release does include a Breaking Change to existing v0.3.x databases. If you need help migrating an existing deployment, reach out at [email protected] or join our Discord at https://discord.source.network/.

Features

  • Add basic metric functionality (#971)
  • Add thread safe transactional in-memory datastore (#947)
  • Persist p2p replicators (#960)
  • Add DateTime custom scalars (#931)
  • Add GraphQL subscriptions (#934)
  • Add support for tls (#885)
  • Add group by support for commits (#887)
  • Add depth support for commits (#889)
  • Make dockey optional for allCommits queries (#847)
  • Add WithStack to the errors package (#870)
  • Add event system (#834)

Fixes

  • Correct errors.WithStack behaviour (#984)
  • Correctly handle nested one to one joins (#964)
  • Do not assume parent record exists when joining (#963)
  • Change time format for HTTP API log (#910)
  • Error if group select contains non-group-by fields (#898)
  • Add inspection of values for ENV flags (#900)
  • Remove panics from document (#881)
  • Add __typename support (#871)
  • Handle subscriber close (#877)
  • Publish update events post commit (#866)

Refactoring

  • Make rootstore require Batching and TxnDatastore (#940)
  • Conceptually clarify schema vs query-language (#924)
  • Decouple db.db from gql (#912)
  • Merkle clock heads cleanup (#918)
  • Simplify dag fetcher (#913)
  • Cleanup parsing logic (#909)
  • Move planner outside the gql directory (#907)
  • Refactor commit nodes (#892)
  • Make latest commits syntax sugar (#890)
  • Remove commit query (#841)

Testing

  • Add event tests (#965)
  • Add new setup for testing explain functionality (#949)
  • Add txn relation-type delete and create tests (#875)
  • Skip change detection for tests that assert panic (#883)

Continuous integration

  • Bump all gh-action versions to support node16 (#990)
  • Bump ssh-agent action to v0.7.0 (#978)
  • Add error message format check (#901)

Chore

  • Extract (events, merkle) errors to errors.go (#973)
  • Extract (datastore, db) errors to errors.go (#969)
  • Extract (connor, crdt, core) errors to errors.go (#968)
  • Extract inline (http and client) errors to errors.go (#967)
  • Update badger version (#966)
  • Move Option and Enumerable to immutables (#939)
  • Add configuration of external loggers (#942)
  • Strip DSKey prefixes and simplify NewDataStoreKey (#944)
  • Include version metadata in cross-building (#930)
  • Update to v0.23.2 the libP2P package (#908)
  • Remove ipfslite dependency (#739)